package com.ibeeking.found.cop.b.rest.service;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ibeeking.found.common.entity.CurrentUser;
import com.ibeeking.found.cop.service.common.dos.GroupTagsDO;
import com.ibeeking.found.cop.service.common.dos.GroupTagsRelDO;
import com.ibeeking.found.cop.service.common.param.GroupTagsBatchParam;
import com.ibeeking.found.cop.service.common.param.GroupTagsParam;
import com.ibeeking.found.cop.service.common.query.GroupTagsPageQuery;
import com.ibeeking.found.cop.service.common.query.GroupTagsQuery;
import com.ibeeking.found.cop.service.common.vo.GroupTagsVO;

import java.util.List;

public interface IGroupTagsService {

    /***
     * 查询列表
     */
    List<GroupTagsVO> list(GroupTagsQuery query);

    /***
     * 分页查询
     */
    Page<GroupTagsVO> pageList(GroupTagsPageQuery pageQuery);
    /***
     * 批量处理标签
     */
    Boolean changeTagsBatch(GroupTagsBatchParam param, CurrentUser currentUser);

    /***
     * 批量添加标签
     */
    Boolean addTagsBatch(GroupTagsBatchParam param, CurrentUser currentUser);

    /***
     * 批量删除标签
     */
    Boolean delTagsBatch(GroupTagsBatchParam param, CurrentUser currentUser);
    /***
     * 新增
     */
    Boolean add(GroupTagsParam param);
    /***
     * 批量添加标签
     */
    Boolean addBatch(List<GroupTagsRelDO> addList);
    /***
     * 修改
     */
    Boolean modify(GroupTagsParam param);
    /***
     * 批量修改
     */
    Boolean updateBatch(List<GroupTagsDO> entityDOS);
    /***
     * 通过id查询
     */
    GroupTagsVO view(Long id);


    /***
     * 修改状态
     */
    Boolean changeStatus(Long id, Integer status);


    /***
     * 通过id删除
     */
    Boolean del(Long id);

}
